Conventional input devices for computing systems constrain the range of possible inputs that a user can provide and often require that a user learn and use artificial movements in order to effectively interact with the system. Gesture-based interfaces have been proposed, but suffer from limited flexibility, poor accuracy, and a high barrier to entry for inexperienced users.